<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Inscripcion extends MN_Controller {

    function __construct() {
        parent::__construct();
        //$this->removeCache();
        $this->load->database();
        $this->load->helper(array('url', 'form'));
        $this->load->library('ion_auth');
        $this->load->library('session');
        $this->load->model('Periodos_Model');
        $this->load->model('Docente_Model');
        $this->load->model('Pensum_Model');
        $this->load->model('Carrera_Model');
        $this->load->model('Ciclos_Model');
        $this->load->model('Materia_Model');
        $this->load->model('Estudiante_Model');
        $this->load->model('Distributivo_Model');
    }

    public function index() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
    }

    public function inicio() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
        //$this->removeCache();

        $this->load->model('Matricula_Model');
        $this->data['periodos'] = $this->Periodos_Model->getListado();
        $periodo = $this->uri->segment(3);
        $this->session->unset_userdata('ses_matr1');
        $this->session->unset_userdata('ses_matr');
        $this->session->unset_userdata('alumno_sess');
        //$this->session->sess_destroy();
        $periodo_terminado=FALSE;
        


        if (!empty($periodo) && $periodo != -1) {

            $this->data['ide_per'] = $periodo;
                $fecha_now=strtotime(date("Y-m-d"), 0);
                $datos_per=$this->Periodos_Model->getDatosPeriodo($periodo);
                $fecha_bim1=strtotime($datos_per[0]['ffinextraordinaria_lec'],0);
                $periodo_terminado=($fecha_now>=$fecha_bim1?($this->data['user']=="carlabenitez"?FALSE:TRUE):FALSE);
                $this->data['inscritos'] = $this->Matricula_Model->getInscritosPorSemestre($periodo, 1, 0);

            
            
            //echo ("entro $periodo :") ;ffinextraordinaria_lec
            //$this->data['ide_pen'] = -1;
        } else {
            $this->data['ide_per'] = -1;
        }
        if (!$periodo_terminado)
            $this->_render('inscripcion/start');
        else{
            $this->data['msj_del']="EL PERIODO DE MATRICULAS A TERMINADO.";
            $this->data['tit_del']="MATRICULACION";
            $this->data['volver']="inscripcion/inicio";

            $this->_render('template/msj_error');

            }
            
            
    }

    public function crear() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        $this->data['carrera'] = $this->Carrera_Model->getListado();

        //print_r($this->session->userdata('alumno_sess'));
        if ($this->session->userdata('alumno_sess') == TRUE) {
            $alumno_sess = $this->session->userdata('alumno_sess');
            //$ide_per = $this->session->userdata('ide_per');
            $this->data['periodos'] = $this->Periodos_Model->getDatosPeriodo($alumno_sess['ide_per']);
            $periodo = $this->data['periodos'][0];
            //$this->data['periodos'] = $this->Periodos_Model->getDatosPeriodo($ide_per);
            //$periodo = $alumno_sess['ide_per'];
            $ide_car = $alumno_sess['ide_car'];
            $ide_pen = $alumno_sess['ide_pen'];
            $codigo_cic = $alumno_sess['codigo_cic'];
            $seccion = $alumno_sess['seccion'];
            $paralelo = $alumno_sess['paralelo'];
            $this->data["persona_ide_pers"] = $alumno_sess['persona_ide_pers'];
            
            $this->session->unset_userdata('alumno_sess');
        } else {
            if ($this->session->userdata('ses_matr1') == FALSE) {
                $this->data['periodos'] = $this->Periodos_Model->getDatosPeriodo($_POST['ide_per']);
                $periodo = $this->data['periodos'][0];
                $ses_matr1 = array('ide_per' => $_POST['ide_per']);
                $this->session->set_userdata('ses_matr1', $ses_matr1);
                $this->session->unset_userdata('alumno_sess');
            } else {

                $ses_matr1 = $this->session->userdata('ses_matr1');
                //$ide_per = $this->session->userdata('ide_per');
                $this->data['periodos'] = $this->Periodos_Model->getDatosPeriodo($ses_matr1['ide_per']);
                //$this->data['periodos'] = $this->Periodos_Model->getDatosPeriodo($ide_per);
                $periodo = $this->data['periodos'][0];
                //echo $ide_per; 
                //$this->session->unset_userdata('ide_per');
            }


            $ide_car = $this->uri->segment(3);
            $ide_pen = $this->uri->segment(4);
            $codigo_cic = $this->uri->segment(5);
            $seccion = $this->uri->segment(6);
            $paralelo = $this->uri->segment(7);
            $this->data["persona_ide_pers"] = -1;
        }
        




        if (!empty($ide_car) && $ide_car != -1) {
            $this->data['pensum'] = $this->Pensum_Model->getPensumCarreras($ide_car);
            $this->data['ide_car'] = $ide_car;
            //$this->data['ide_pen'] = -1;
        } else {
            $this->data['ide_car'] = -1;
        }
        if (!empty($ide_pen) && $ide_pen != -1) {
            $this->data['ciclo'] = $this->Ciclos_Model->getCicloPensumPrimero($ide_pen);
            $this->data['ide_pen'] = $ide_pen;
        } else {
            $this->data['ide_pen'] = -1;
        }
        if (!empty($codigo_cic) && $codigo_cic != -1) {
            //$this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic);
            $this->data['codigo_cic'] = $codigo_cic;
        } else {
            $this->data['codigo_cic'] = -1;
        }

        if (!empty($seccion) && $seccion != -1) {
            //$this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic, $periodo['ide_lec'], $seccion);
            $this->data['seccion'] = $seccion;
        } else {
            $this->data['seccion'] = -1;
        }

        if (!empty($paralelo) && $paralelo != -1) {
            $this->data['docentes'] = $this->Docente_Model->getListado();
            $this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic, $periodo['ide_lec'], $seccion, $paralelo);
            $this->data['paralelo'] = $paralelo;

            $this->data['estudiantes'] = $this->Estudiante_Model->getListadoNoInscritos($periodo['ide_lec']);
            
        } else {
            $this->data['paralelo'] = -1;
        }
        $this->_render('inscripcion/new');
    }

    public function actualizar() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        $this->data['carrera'] = $this->Carrera_Model->getListado();

        $var1 = $this->session->userdata('ses_matr');

        if ($var1 == FALSE) {
            $this->load->model('Matricula_Model');
            $this->load->model('Cursa_Model');

            $opc = $this->uri->segment(3);
            $ide_per = $this->uri->segment(4);
            $id_matr = $this->uri->segment(5);
            $ide_pers = $this->uri->segment(6);
            $cursa = $this->Cursa_Model->getDatosCursa($id_matr);

            $this->data['periodos'] = $this->Periodos_Model->getDatosPeriodo($ide_per);
            $this->data['estudiantes'] = $this->Estudiante_Model->getDatosEstudiante($ide_pers);
            $periodo = $this->data['periodos'][0];
            $ses_matr = array('ide_per' => $ide_per, 'opc' => $opc, 'id_matr' => $id_matr, 'ide_pers' => $ide_pers);
            $this->session->set_userdata('ses_matr', $ses_matr);
            $this->data['ide_car'] = $cursa[0]['ide_car'];
            //$this->data['ide_car'] = $ide_car;
            $this->data['ide_pen'] = $cursa[0]['ide_pen'];
            $this->data['pensum'] = $this->Pensum_Model->getPensumCarreras($cursa[0]['ide_car']);

            $this->data['codigo_cic'] = $cursa[0]['ide_cic'];
            $this->data['ciclo'] = $this->Ciclos_Model->getCicloPensumPrimero($cursa[0]['ide_pen']);
            $this->data['seccion'] = $cursa[0]['seccion'];
            $this->data['paralelo'] = $cursa[0]['paralelo'];
            $this->data['modo_mat'] = $this->Matricula_Model->getModo_mat($id_matr);
            $this->_render('inscripcion/update');
        } else {

            $ses_matr = $this->session->userdata('ses_matr');
            $ide_per = $ses_matr['ide_per'];//ide_periodo
            $ide_pers = $ses_matr['ide_pers']; //ide_persona

            $this->data['periodos'] = $this->Periodos_Model->getDatosPeriodo($ide_per);
            $this->data['estudiantes'] = $this->Estudiante_Model->getDatosEstudiante($ide_pers);
            $periodo = $this->data['periodos'][0];
            $opc = $ses_matr['opc'];
            $id_matr = $ses_matr['id_matr'];

            $ide_car = $this->uri->segment(3);
            $ide_pen = $this->uri->segment(4);
            $codigo_cic = $this->uri->segment(5);
            $seccion = $this->uri->segment(6);
            $paralelo = $this->uri->segment(7);

            if (!empty($ide_car) && $ide_car != -1) {
                $this->data['pensum'] = $this->Pensum_Model->getPensumCarreras($ide_car);
                $this->data['ide_car'] = $ide_car;
            } else {
                $this->data['ide_car'] = -1;
            }
            if (!empty($ide_pen) && $ide_pen != -1) {
                $this->data['ciclo'] = $this->Ciclos_Model->getCicloPensumPrimero($ide_pen);
                $this->data['ide_pen'] = $ide_pen;
            } else {
                $this->data['ide_pen'] = -1;
            }
            if (!empty($codigo_cic) && $codigo_cic != -1) {
                $this->data['codigo_cic'] = $codigo_cic;
            } else {
                $this->data['codigo_cic'] = -1;
            }

            if (!empty($seccion) && $seccion != -1) {
                //$this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic, $periodo['ide_lec'], $seccion);
                $this->data['seccion'] = $seccion;
            } else {
                $this->data['seccion'] = -1;
            }

            if (!empty($paralelo) && $paralelo != -1) {
                $this->data['docentes'] = $this->Docente_Model->getListado();
                $this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic, $periodo['ide_lec'], $seccion, $paralelo);
                $this->data['paralelo'] = $paralelo;
            } else {
                $this->data['paralelo'] = -1;
            }
            $this->data['modo_mat'] = 1;
            $this->_render('inscripcion/update');
        }
    }

    public function procesar() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        if (isset($_POST['cod_est'])) {
            $ide_lec = $this->input->post('ide_lec');
            $ide_car = $this->input->post('ide_car');
            $ide_pen = $this->input->post('ide_pen');
            $ide_ciclo = $this->input->post('codigo_cic');
            $seccion = $this->input->post('seccion');
            $paralelo = $this->input->post('paralelo');
            $cod_est = $this->input->post('cod_est');
            $odigo_cic = $this->Ciclos_Model->getDatosCiclo($ide_ciclo);

            $this->data['materias'] = $this->Distributivo_Model->getDatosDistributivo($ide_lec, $ide_car, $ide_pen, $odigo_cic[0]['codigo_cic'], $seccion, $paralelo, $ide_mat = null);
            $this->data['estudiante'] = $this->Estudiante_Model->getDatosEstudiante($cod_est);
            $this->data['ide_lec'] = $ide_lec;
            $this->data['ide_car'] = $ide_car;
            $this->data['ide_pen'] = $ide_pen;
            $this->data['ide_ciclo'] = $ide_ciclo;
            $this->data['seccion'] = $seccion;
            $this->data['paralelo'] = $paralelo;
            $this->data['modo_mat'] = $this->input->post('modo_mat');
            $this->_render('inscripcion/procesoi');
        } else {

            redirect('inscripcion/crear');
        }
    }

    public function procesarm() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        if (isset($_POST['cod_est'])) {
            $this->load->model('Matricula_Model');

            $ide_lec = $this->input->post('ide_lec');
            $ide_car = $this->input->post('ide_car');
            $ide_pen = $this->input->post('ide_pen');
            $ide_ciclo = $this->input->post('codigo_cic');
            $seccion = $this->input->post('seccion');
            $paralelo = $this->input->post('paralelo');
            $odigo_cic = $this->Ciclos_Model->getDatosCiclo($ide_ciclo);

            $cod_est = $this->input->post('cod_est');

            $this->data['materias'] = $this->Distributivo_Model->getDatosDistributivo($ide_lec, $ide_car, $ide_pen, $odigo_cic[0]['codigo_cic'], $seccion, $paralelo, $ide_mat = null);
            $this->data['estudiante'] = $this->Estudiante_Model->getDatosEstudiante($cod_est);
            $this->data['ide_lec'] = $ide_lec;
            $this->data['ide_car'] = $ide_car;
            $this->data['ide_pen'] = $ide_pen;
            $this->data['ide_ciclo'] = $ide_ciclo;
            $this->data['seccion'] = $seccion;
            $this->data['paralelo'] = $paralelo;

            $ses_matr = $this->session->userdata('ses_matr');
            $opc = $ses_matr['opc'];
            $id_matr = $ses_matr['id_matr'];
            $this->data['inscrito'] = $this->Matricula_Model->getDatosMatricula($id_matr);

            $this->data['opc'] = $opc;
            $this->data['id_matr'] = $id_matr;
            //$this->session->sess_destroy('ses_matr');

            $this->data['modo_mat'] = $this->input->post('modo_mat');
            $this->_render('inscripcion/procesarm');
        } else {

            redirect('inscripcion/crear');
        }
    }

    public function ingresodatos() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        $this->load->model('Matricula_Model');
        $this->load->model('Cursa_Model');

        $nro_mat = 0;
        //$ide_mat=1;
        $modo_mat = $this->input->post('modo_mat');
        $inscripcion = array(
            "estudiante_ide_est" => $this->input->post('ide_est'),
            "fechapre_matr" => date("Y-m-d", strtotime($this->input->post('fechapre_matr'), 0)),
            "fecha_matr" => date("Y-m-d", strtotime($this->input->post('fechapre_matr'), 0)),
            "estado_matr" => 1, //1 - proceso, 2 - aprobado , 3 -negada , 4 - devuelto
            "nro_matr" => $nro_mat,
            "inscrip_matr" => $this->input->post('inscrip_matr'), // 0=> inscripcion , 1=> inscripcion/matricula
            "tipo_matr" => 1, //1 - ordinaria, 2 -extra , 3 - especial 
            "modo_mat" => $this->input->post('modo_mat'), //para indicar si es normal o por convalidacion
            "observ_mat" => $this->input->post('observa_cur'));
        $ide_mat = $this->Matricula_Model->grabarInscripcion($inscripcion);

        $nro_filas = $this->input->post('nro_filas');


        if ($nro_filas > 0) {
            for ($i = 1; $i <= $nro_filas; $i++) {


                $cursa = array(
                    "periodos_lectivos_ide_lec" => $this->input->post('ide_lec'),
                    "ide_car" => $this->input->post('ide_car'),
                    "ide_pen" => $this->input->post('ide_pen'),
                    "ide_cic" => $this->input->post('ide_ciclo'),
                    "materia_ide_mat" => $this->input->post('ide_mat' . ($i - 1)),
                    "docente_ide_doc" => $this->input->post('ide_doc' . ($i - 1)),
                    "matriculas_id_matr" => $ide_mat,
                    "seccion" => $this->input->post('seccion'),
                    "paralelo" => $this->input->post('paralelo'),
                    "estudiante_ide_est" => $this->input->post('ide_est'),
                    "estado_cur" => 0, // 0 - activa, 1 pendiente ,2 - aprobada, 3  -reprobada
                    "cant_cur" => 0, //numero veces que reprueba 
                    "cupo_cur" => 0, //cupo
                    "reasig_arrastre_cur" => 0,
                    "observa_cur" => "NINGUNA",
                    "eliminado" => 0);
                $this->Cursa_Model->grabarCursa($cursa);

            }
        }
        if ($this->input->post('inscrip_matr') == 1) {
            redirect('matinicial/procesar/' . $ide_mat);
        } else {
            redirect('inscripcion/inicio');
        }
    }

    public function modificadatos() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->session->unset_userdata('ses_matr');
        $this->data['user'] = $this->ion_auth->get_user_username();

        $this->load->model('Matricula_Model');
        $this->load->model('Cursa_Model');


        $id_matr = $this->input->post('id_matr');
        $opc = $this->input->post('opc');
        $inscripcion = array(
            "id_matr" => $id_matr,
            "fechapre_matr" => date("Y-m-d H:i:s", strtotime($this->input->post('fechapre_matr') . " " . date("H:i:s"), 0)),
            "fecha_matr" => date("Y-m-d H:i:s", strtotime($this->input->post('fechapre_matr') . " " . date("H:i:s"), 0)),
            "inscrip_matr" => $this->input->post('inscrip_matr'), // 0=> inscripcion , 1=> inscripcion/matricula
            "modo_mat" => $this->input->post('modo_mat'), //para indicar si es normal o por convalidacion
            "observ_mat" => $this->input->post('observa_cur'),
        );
        if ($opc == 'upd') {
            $this->Matricula_Model->actualizarInscripcion($inscripcion);
            $this->Cursa_Model->eliminaFisicaCursa($id_matr);

            $nro_filas = $this->input->post('nro_filas');

            if ($nro_filas > 0) {
                for ($i = 1; $i <= $nro_filas; $i++) {

                    $cursa = array(
                        "periodos_lectivos_ide_lec" => $this->input->post('ide_lec'),
                        "ide_car" => $this->input->post('ide_car'),
                        "ide_pen" => $this->input->post('ide_pen'),
                        "ide_cic" => $this->input->post('ide_ciclo'),
                        "materia_ide_mat" => $this->input->post('ide_mat' . ($i - 1)),
                        "docente_ide_doc" => $this->input->post('ide_doc' . ($i - 1)),
                        "matriculas_id_matr" => $id_matr,
                        "seccion" => $this->input->post('seccion'),
                        "paralelo" => $this->input->post('paralelo'),
                        "estudiante_ide_est" => $this->input->post('ide_est'),
                        "estado_cur" => 0, // 0 - activa, 1 pendiente ,2 - aprobada, 3  -reprobada
                        "cant_cur" => 0, //numero veces que reprueba 
                        "cupo_cur" => 0, //cupo
                        "reasig_arrastre_cur" => 0,
                        "observa_cur" => "NINGUNA",
                        "eliminado" => ($opc == 'upd' ? 0 : 1));


                    $this->Cursa_Model->grabarCursa($cursa);

                    //print_r($cursa);
                    //$this->Distributivo_Model->grabarDistributivo($distributivo);
                    //
                //$this->_render('distributivo/new');
                }
                if ($this->input->post('inscrip_matr') == 1) {
                    redirect('matinicial/procesar/' . $id_matr);
                } else {
                    redirect('inscripcion/inicio');
                }
            }
        } else {
            $elimina = array("id_matr" => $id_matr);
            $this->Matricula_Model->eliminarMatricula($elimina);
            $this->Cursa_Model->eliminarCursa($id_matr);
            redirect('inscripcion/inicio');
        }
    }

    function presearch() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        $this->load->model('Matricula_Model');
        
        $who = $this->input->post('txtsearch');
        if (empty($who))
            redirect("inscripcion/inicio");
        else {

            $this->data['periodos'] = $this->Periodos_Model->getListado();
            $periodo = $this->uri->segment(3);


            if (!empty($periodo) && $periodo != -1) {

                $this->data['ide_per'] = $periodo;
                $this->data['inscritos'] = $this->Matricula_Model->getInscritosPorSemestreCriterio($who, $this->input->post('tipo_busqueda'), $periodo, 1, 0);
            } else {
                $this->data['ide_per'] = -1;
            }
            //echo "el periodo es".$periodo;
            //redirect("inscripcion/inicio/");
            $this->_render('inscripcion/start');

            //$this->_render('inscripcion/start/$periodo');
        }
    }

    function irEstudiante() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        if ($this->session->userdata('ses_matr1')) {
            $ses_matr1 = $this->session->userdata('ses_matr1');
            $periodo = $ses_matr1['ide_per'];
        }


        $ide_car = $this->uri->segment(3);
        $ide_pen = $this->uri->segment(4);
        $codigo_cic = $this->uri->segment(5);
        $seccion = $this->uri->segment(6);
        $paralelo = $this->uri->segment(7);
        $this->session->unset_userdata('alumno_sess');

        $alumno_sess = array(
            'name_form' => "inscripcion/crear",
            'ide_per' => $periodo,
            'ide_car' => $ide_car,
            'ide_pen' => $ide_pen,
            'codigo_cic' => $codigo_cic,
            'seccion' => $seccion,
            'paralelo' => $paralelo,
            'persona_ide_pers' => 0);
        $this->session->set_userdata('alumno_sess', $alumno_sess);
        //print_r($this->session->userdata('alumno_sess'));

        redirect("estudiante/crear");

        //$this->_render('inscripcion/start/$periodo');
    }

}
